/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.autoescola.core.web.security.resolver.adapter;

/**
 *
 * @author leonardo luz fernandes
 * @version 0.1
 * @since 08/11/2010
 */

    
import java.util.Iterator;
import java.util.List;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;


public class DatabaseSecurityAttributeResolver {
        
    //extends AbstractAttributeResolver {

    //public DatabaseSecurityAttributeResolver(){
    
    //}//end konstructor
    
    
    //public boolean isSupported( int function ){
    //
    //    boolean supported = false ;
    //    
//        switch( function ){
//
//            case SECURED:
//                supported = true;
//            break; 
//
//            case AUTH_TYPE:
//                supported = true;
//            break;
//
//            case USER_IN_ROLE:
//                supported = true;
//            break;
//
//            case USER_IN_ALL_ROLES:
//                supported = true;
//            break;
//
//            default:
//                supported = false;
//            break;
//
//        }//end switch
//
//
//        return supported;
//
//    }//end method
    
//    public boolean isSecurityEnabled( FacesContext context ){
//        return ( context.getExternalContext().getRemoteUser() != null );
//    }//end method
//    
//    public String getPrincipalName( FacesContext context ){
//        return context.getExternalContext().getRemoteUser();
//    }//end method
//    
//    public String getAuthenticationType( FacesContext context ){
//        return context.getExternalContext().getAuthType();
//    }//end method
//    
//    public boolean isUserInAllRoles( FacesContext context , List roleDefinitions ){
//        return matchUserRoles( context , roleDefinitions , true );
//    }//end method
//    
//    public boolean isUserInRoles( FacesContext context , List roleDefinitions ){
//        return matchUserRoles( context , roleDefinitions , false );
//    }//end method
//    
//    
//    private boolean matchUserRoles( FacesContext context , List roleDefinitions , boolean inclusive ){
//    
//        boolean authOk = false;
//      
//        ExternalContext extenalContext = context.getExternalContext();     
//        List userRoles = (List)extenalContext.getSessionMap().get("userRoles");
//        Iterator it = roleDefinitions.iterator();
//        
//        while( it.hasNext() ){
//        
//            String role = (String)it.next();
//            
//            authOk = userRoles.contains(role);
//            
//            if( ( inclusive && !authOk ) || ( !inclusive && authOk )  ){
//                break;
//            }//end if
//     
//        }//end while
//        
//        return authOk;
//        
//    }//end method
//    
   
}//end klazz
